TERMINERINNERUNG
================
Schickt Kundinnen und Kunden vor ihrem Termin automatisch eine Erinnerungs-Mail.
Weniger vergessene Termine, ohne dass jemand daran denken muss.

Braucht: einen Computer, der tagsüber läuft (Mac oder Windows), Python 3.8 oder neuer und
ein E-Mail-Postfach mit SMTP-Zugang (z. B. bei World4You, IONOS, Gmail mit App-Passwort).


WOHER KOMMEN DIE TERMINE?
-------------------------
a) Excel-Liste: Als CSV speichern ("termine.csv"). Spalten: Datum; Uhrzeit; Name; E-Mail;
   Leistung; Ort; Telefon; Status. Steht bei Status "abgesagt", wird nicht erinnert.
   Reihenfolge und genaue Schreibweise sind egal (auch "Kunde", "Mail", "Beginn" usw.).
b) Kalender: Google-Kalender -> Einstellungen -> "Privatadresse im iCal-Format" kopieren.
   Outlook: Kalender veröffentlichen -> ICS-Link. In einstellungen.json eintragen:
     "quellen": [ {"typ": "ics", "url": "https://…/basic.ics"} ]
   Die E-Mail des Kunden wird als Teilnehmer eingetragen oder steht in der Beschreibung.
Beides gleichzeitig geht auch.


EINRICHTEN (einmalig, ca. 15 Minuten)
-------------------------------------
1. Ordner an einen festen Platz kopieren, am Mac NICHT auf Schreibtisch/Dokumente
   (macOS blockiert dort automatische Aufgaben), z. B. ~/Terminerinnerung.
2. einstellungen.json öffnen und anpassen: Firma, Telefon, Absender, SMTP-Server, Texte.
   In den Texten gehen: {anrede} {name} {wochentag} {datum} {uhrzeit} {leistung} {ort}
   {firma} {telefon_firma}. Zeilen mit leerem Platzhalter fallen automatisch weg.
3. Passwort hinterlegen:
     Mac:     python3 erinnerung.py passwort      (landet im Schlüsselbund)
     Windows: setx TERMIN_SMTP_PASSWORT "…"       (danach ab- und anmelden)
4. Testen:   python3 erinnerung.py test           (Test-Mail an den Absender)
             python3 erinnerung.py vorschau       (zeigt Termine und Erinnerungszeiten)
5. Erst prüfen, dann scharf schalten: "testmodus" steht auf true, dann wird nichts
   verschickt, nur angezeigt. Mit "test_empfaenger": "eigene@adresse.at" gehen alle
   Erinnerungen an diese Adresse. Passt alles: "testmodus": false.
6. Automatisch starten:  python3 erinnerung.py einrichten   (alle 15 Minuten)


GUT ZU WISSEN
-------------
- Standard: 24 Stunden vorher. Mehrere Zeitpunkte gehen, z. B. [24, 2].
- Nachts (21–7 Uhr) wird nichts verschickt, sondern am Morgen. Einstellbar: "versand_von_bis".
- Weniger als 60 Minuten vor dem Termin wird nicht mehr erinnert.
- Wer schon eine Erinnerung bekommen hat, steht in gesendet.json: es geht nichts doppelt raus.
  Wird ein Termin verschoben, gibt es für den neuen Zeitpunkt wieder eine Erinnerung.
- Alles, was passiert, steht in protokoll.txt.
- Datenschutz: Erinnerungen an gebuchte Termine sind Teil des Auftrags (keine Werbung) und
  brauchen keine eigene Einwilligung. In die Datenschutzerklärung des Betriebs gehört ein Satz
  dazu. Keine Werbung in die Erinnerung schreiben!
